package com.example.dao;

import com.example.entity.Notice;
import com.example.entity.Params;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

@Repository
public interface NoticeDao extends Mapper<Notice> {

    /**
     * 按标题模糊查询（notice 表）
     */
    @Select("SELECT * FROM notice WHERE title LIKE CONCAT('%', #{title}, '%') ORDER BY create_time DESC")
    List<Notice> findByTitle(@Param("title") String title);

    /**
     * 查询最近几条公告（limit 由参数控制）
     */
    @Select("SELECT * FROM notice ORDER BY create_time DESC LIMIT #{limit}")
    List<Notice> findLatest(@Param("limit") int limit);

    /**
     * 复合查询（按时间范围、发布者等）
     */
    List<Notice> findBySearch(@Param("params") Params params);
}
